iT邦幫忙

DAY 15
0

重頭打基礎-C/C++系列 第 15

重頭打基礎-C/C (Day15:一些keywrod觀念)

  • 分享至 

  • xImage
  •  

參考資料
http://programming.im.ncnu.edu.tw/J_index.html
http://openhome.cc/Gossip/Java/FinalSyntax.html

bubble sort

  • 每執行一輪比較後,最大的會跑到最後面

interface

  • JAVA中實作interface(ex: ... implement interfaceA)就表示物件擁有該interfaceA的行為(method)

  • Interface中宣告的變數具有以下特質

    • public-
      Interface因為都是要實做出來,因此Interface內的變數一定是public。
    • static-
      Interface沒有實作,就不可能透過Interface產生物件。換言之,Interface內的變數一定是屬於Class,而不屬於Object。
    • final-
      Interface可視為一種約定或契約,我們自然不希望裡面的variable可以隨便更改。
  • Interface中宣告的method具有以下特質

    • public-同變數說明。
    • abstract-
      Interface沒有實作,裡面定義的method只是宣告而已。
      沒有實作的method在Java裡用abstract這個關鍵字來表達。

abstract

  • 只有參數宣告,沒有實作的方法,稱為abstract method。
    某些情況下,雖然有實作,但我們希望強迫子類別必須override該方法時,也可以宣告為abstract method。
    Interface裡的方法一定沒有實作,因此必然為abstract method。
    如果Class裡有一個以上的abstract method,則該class必須宣告為abstract。
    有時候即使沒有abstract method,也可以宣告該class為abstract,我們不可以直接new該class的物件,只能new其子類別物件。

  • 特徵:

    • 具有abstract method的class必須宣告為abstract class。
    • 繼承abstract class的子類別必須override所有父類別的abstract method,否則子類別也必須宣告為abstract class。
    • 實作Interface A的Class必須實作A裡的所有method,否則必須宣告自己為abstract class。
    • 不能直接new abstract class,只能new其非abstract class的子類別。

封裝 Java

  • private:只有A自己才可以存取, 使用keyword private
  • package:只有和A同一個package的class才可以存取, 沒有相對應的keyword
  • protected:只有同一個package或是A的子類別才可以存取, 使用keyword protected
  • public:所有的class都可以存取, 使用keyword public

final

  • 如果在指定變數值之後,就不想再改變變數值,
    可以在宣告變數時加上final限定,如果後續撰寫程式時,
    自己或別人不經意想修改final變數,就會出現編譯錯誤。
    如果物件資料成員被宣告為final,但沒有明確使用=指定值,
    那表示延遲物件成員值的指定,在建構式執行流程中,
    一定要有對該資料成員指定值的動作,否則編譯錯誤。
    class前也可以加上final關鍵字,如果class前使用了final關鍵字定義,
    那麼表示這個類別是最後一個了,不會再有子類別,也就是不能被繼承。

Polymorphism 多型

  • 使用單一介面操作多種型態的物件,
  • EX:B,C都是繼承A 所以當B物件說print A.blood會print B的blood,而C則是顯示C的
    (這時候A.blood因為不同的時候顯示不同的物件的值,稱為多型)

enum 列舉常數

  • enum開始加上一個列舉名稱,並以大括號括住要群組管理的常數
    EX:enum Action {a,b,c}; (預設是從a=0 b=1遞增 也可以用b=3來自己指定值

union

  • 一個union只配置一個足夠大的空間以來容納最大長度的資料成員
    EX:
    union StateMachine {
    int number;
    double exp;
    };
    double比較常,所以StateMachine長度為double

泛型*

  • 事先不知道被收集物件之形態,因此內部實作時,都是使用Object來參考被收集之物件,
    取回物件時也是以Object型態傳回,若你想針對某類別定義的行為操作時,
    必須告訴編譯器,讓物件重新扮演該型態。

上一篇
重頭打基礎-C/C (Day14:線性表)
下一篇
重頭打基礎-C/C (Day16:魔術師發牌(單向循環鏈表))
系列文
重頭打基礎-C/C++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言